package com.easondongh.blog.mapper;

import com.easondongh.blog.pojo.Blog;
import com.easondongh.blog.utils.Page;
import com.easondongh.blog.vo.BlogVo;
import org.springframework.stereotype.Component;

import java.util.List;

/**
 * 博客
 * @author EasonDongH
 * @date 2020/3/26 21:21
 */
@Component
public interface BlogMapper {

    /**
     * 保存
     * @param blog
     */
    void save(Blog blog);

    /**
     * 根据id查询
     * @param id
     * @return
     */
    Blog getById(String id);

    /**
     * 更新
     * @param blog
     */
    void update(Blog blog);

    /**
     * 根据id删除
     * @param id
     * @param updateTime
     */
    void deleteById(String id, String updateTime);

    /**
     * 分页查询
     * @param page
     * @return
     */
    List<BlogVo> getByPage(Page<BlogVo> page);

    /**
     * 查询总数
     * @param page
     * @return
     */
    int getCountByPage(Page<BlogVo> page);

    /**
     * 推荐阅读
     * 按blog_collection,blog_goods,blog_comment,blog_read依次倒序排列
     * 然后取前5
     * @return
     */
    List<Blog> getRecommend();

    /**
     * 获取文章时间轴，仅返回博客标题、创建时间
     * @return
     */
    List<Blog> getTimeline();

    /**
     * 更新点赞量
     * @param blogId
     */
    void updateGoods(String blogId);

    /**
     * 更新收藏量
     * @param blogId
     */
    void updateCollection(String blogId);

}
